<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
    <title>Reference</title>
    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
	<div id="product_logo"></div>
	<div id="product_name"><big><b></b></big></div>
	<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<br/>
<h1>Duplex</h1>

<ul>
  <li><a href="../index.html">Index</a></li>
</ul>

<h2>Contents</h2>
<ul>
<li><a href="#Functions">Functions</a></li>
<li><a href="#Tables">Tables</a></li>
<li><a href="#Fields">Fields</a></li>
</ul>


<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
  <li><a href="../modules/Duplex.Application.html">Duplex.Application</a></li>
  <li><a href="../modules/Duplex.Applications.Effect.html">Duplex.Applications.Effect</a></li>
  <li><a href="../modules/Duplex.Applications.GridPie.html">Duplex.Applications.GridPie</a></li>
  <li><a href="../modules/Duplex.Applications.Hydra.html">Duplex.Applications.Hydra</a></li>
  <li><a href="../modules/Duplex.Applications.Instrument.html">Duplex.Applications.Instrument</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.GridLayout.html">Duplex.Applications.Keyboard.GridLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.Layouts.HarmonicLayout.html">Duplex.Applications.Keyboard.Layouts.HarmonicLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.Layouts.IsomorphicLayout.html">Duplex.Applications.Keyboard.Layouts.IsomorphicLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.Layouts.PianoLayout.html">Duplex.Applications.Keyboard.Layouts.PianoLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.html">Duplex.Applications.Keyboard</a></li>
  <li><a href="../modules/Duplex.Applications.Matrix.html">Duplex.Applications.Matrix</a></li>
  <li><a href="../modules/Duplex.Applications.Metronome.html">Duplex.Applications.Metronome</a></li>
  <li><a href="../modules/Duplex.Applications.MidiActions.Bindings.html">Duplex.Applications.MidiActions.Bindings</a></li>
  <li><a href="../modules/Duplex.Applications.MidiActions.html">Duplex.Applications.MidiActions</a></li>
  <li><a href="../modules/Duplex.Applications.Mixer.html">Duplex.Applications.Mixer</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_group.html">Duplex.Applications.Mlrx.Mlrx_group</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_note.html">Duplex.Applications.Mlrx.Mlrx_note</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_pos.html">Duplex.Applications.Mlrx.Mlrx_pos</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_track.html">Duplex.Applications.Mlrx.Mlrx_track</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.html">Duplex.Applications.Mlrx</a></li>
  <li><a href="../modules/Duplex.Applications.Navigator.html">Duplex.Applications.Navigator</a></li>
  <li><a href="../modules/Duplex.Applications.NotesOnWheels.html">Duplex.Applications.NotesOnWheels</a></li>
  <li><a href="../modules/Duplex.Applications.PatternCursor.html">Duplex.Applications.PatternCursor</a></li>
  <li><a href="../modules/Duplex.Applications.PatternSequence.html">Duplex.Applications.PatternSequence</a></li>
  <li><a href="../modules/Duplex.Applications.Recorder.html">Duplex.Applications.Recorder</a></li>
  <li><a href="../modules/Duplex.Applications.Repeater.html">Duplex.Applications.Repeater</a></li>
  <li><a href="../modules/Duplex.Applications.Rotate.html">Duplex.Applications.Rotate</a></li>
  <li><a href="../modules/Duplex.Applications.StepSequencer.html">Duplex.Applications.StepSequencer</a></li>
  <li><a href="../modules/Duplex.Applications.SwitchConfiguration.html">Duplex.Applications.SwitchConfiguration</a></li>
  <li><a href="../modules/Duplex.Applications.TestPad.html">Duplex.Applications.TestPad</a></li>
  <li><a href="../modules/Duplex.Applications.TrackSelector.html">Duplex.Applications.TrackSelector</a></li>
  <li><a href="../modules/Duplex.Applications.Transport.html">Duplex.Applications.Transport</a></li>
  <li><a href="../modules/Duplex.Applications.UIButtonTest.html">Duplex.Applications.UIButtonTest</a></li>
  <li><a href="../modules/Duplex.Applications.XYPad.html">Duplex.Applications.XYPad</a></li>
  <li><a href="../modules/Duplex.Automation.html">Duplex.Automation</a></li>
  <li><a href="../modules/Duplex.Browser.html">Duplex.Browser</a></li>
  <li><a href="../modules/Duplex.BrowserProcess.html">Duplex.BrowserProcess</a></li>
  <li><a href="../modules/Duplex.Canvas.html">Duplex.Canvas</a></li>
  <li><a href="../modules/Duplex.CanvasPoint.html">Duplex.CanvasPoint</a></li>
  <li><a href="../modules/Duplex.ControlMap.html">Duplex.ControlMap</a></li>
  <li><a href="../modules/Duplex.Device.html">Duplex.Device</a></li>
  <li><a href="../modules/Duplex.Display.html">Duplex.Display</a></li>
  <li><a href="../modules/Duplex.Globals.html">Duplex.Globals</a></li>
  <li><a href="../modules/Duplex.Message.html">Duplex.Message</a></li>
  <li><a href="../modules/Duplex.MessageStream.html">Duplex.MessageStream</a></li>
  <li><a href="../modules/Duplex.MidiDevice.html">Duplex.MidiDevice</a></li>
  <li><a href="../modules/Duplex.OscClient.html">Duplex.OscClient</a></li>
  <li><a href="../modules/Duplex.OscDevice.html">Duplex.OscDevice</a></li>
  <li><a href="../modules/Duplex.OscVoiceMgr.html">Duplex.OscVoiceMgr</a></li>
  <li><a href="../modules/Duplex.Preferences.html">Duplex.Preferences</a></li>
  <li><a href="../modules/Duplex.ProcessSlicer.html">Duplex.ProcessSlicer</a></li>
  <li><a href="../modules/Duplex.RoamingDSP.html">Duplex.RoamingDSP</a></li>
  <li><a href="../modules/Duplex.Scheduler.html">Duplex.Scheduler</a></li>
  <li><a href="../modules/Duplex.StateController.html">Duplex.StateController</a></li>
  <li><a href="../modules/Duplex.UIButton.html">Duplex.UIButton</a></li>
  <li><a href="../modules/Duplex.UIButtonStrip.html">Duplex.UIButtonStrip</a></li>
  <li><a href="../modules/Duplex.UIComponent.html">Duplex.UIComponent</a></li>
  <li><a href="../modules/Duplex.UIKey.html">Duplex.UIKey</a></li>
  <li><a href="../modules/Duplex.UIKeyPressure.html">Duplex.UIKeyPressure</a></li>
  <li><a href="../modules/Duplex.UILabel.html">Duplex.UILabel</a></li>
  <li><a href="../modules/Duplex.UIPad.html">Duplex.UIPad</a></li>
  <li><a href="../modules/Duplex.UIPitchBend.html">Duplex.UIPitchBend</a></li>
  <li><strong>Duplex.UISlider</strong></li>
  <li><a href="../modules/Duplex.UISpinner.html">Duplex.UISpinner</a></li>
  <li><a href="../modules/Duplex.WidgetHooks.html">Duplex.WidgetHooks</a></li>
  <li><a href="../modules/Duplex.WidgetKeyboard.html">Duplex.WidgetKeyboard</a></li>
  <li><a href="../modules/Duplex.html">Duplex</a></li>
  <li><a href="../modules/main.html">main</a></li>
</ul>

</div>

<div id="content">

<h1>Module <code>Duplex.UISlider</code></h1>
<p>The Slider supports different input methods: buttons or faders/dials.</p>
<p>



<h3>Dial mode / fader mode</h3>

<p>  In most cases, you would specify a UISlider to take control of either a dial/encoder or fader. </p>

<pre><code> _    _______
| |  |xxxx   | &lt;- UISlider, mapped to horizontally aligned fader
| |   ¯¯¯¯¯¯¯  &lt;- UISlider, mapped to vertically aligned fader
|x|   _
|x|  ( )       &lt;- UISlider mapped to "dial"
 ¯    ¯
</code></pre>

<p>  Specify an "on_change" function to handle events from the slider. </p>


<h3>Button mode</h3>

<p>  In button mode, each value-step of the slider is assigned to a separate
  button. The size of the resulting slider is determined by the size you specify
  when creating the slider (or, by using the set_size() after the slider has
  been created). </p>
<pre><code> _    _______
|_|  |x|x|x| | &lt;- horizontally aligned UISlider (mapped to 4 buttons)
|_|   ¯¯¯¯¯¯¯  &lt;- vertically aligned UISlider (mapped to 4 buttons)
|x|   _
|x|  | |       &lt;- single-button UISlider (toggles min/max value)
 ¯    ¯
 _ _ _ _
|x|x|x|x|      &lt;- two-dimensional UISlider, possible when
|x|x|_|_|         orientation is set to ORIENTATION.NONE
                  (minimum in upper-left, max in lower right corner)
</code></pre>

<p>  To map a slider onto button(s), you must also specify an "on_press" event
  handler. The method does not have to do anything special, but without it,
  the slider will never receive any events from the device. </p>

<p>  In "button mode", you also have an additional property called "toggleable".
  Setting this to true will enable you to toggle off any active button, and thus
  gain an extra value-step from any series of buttons. </p>

<h3>Other features</h3>

<ul>
    <li>Built-in quantize for MIDI devices (only output when values change)</li>
    <li>Built-in support for relative encoder/dials. The actual type of relative encoder is specified in your control-map (see <a href="../modules/Duplex.Globals.html#PARAM_MODE">Duplex.Globals.PARAM_MODE</a>)</li>
</ul>

<h3>Examples</h3>

<p>  Duplex comes with a sample configuration for the UISlider. Launch the
  duplex browser and choose Custombuilt > UISlider Demo</p>

<h3>Changelog</h3>

<p>  0.99.5</p>
<pre><code>- Added support for 14-bit CC and NRPN (absolute/relative modes)
</code></pre>

<p>  0.99</p>
<pre><code>- Got rid of "dimmed" method (just call set_palette instead)
- Support ORIENTATION.NONE for two-dimensional layout
</code></pre>




</p>


<h2><a href="#Functions">Functions</a></h2>
<table class="function_list">
	<tr>
	<td class="name" nowrap><a href="#__init">__init (app, map)</a></td>
	<td class="summary">Initialize the UISlider class</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#do_press">do_press (msg)</a></td>
	<td class="summary">A button was pressed</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#do_change">do_change (msg)</a></td>
	<td class="summary">A value was changed (slider, dial)
 set index + precise value within the index</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#output_quantize">output_quantize (val, mode)</a></td>
	<td class="summary">Check if parameter-quantization is in force</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#set_value">set_value (val, skip_event)</a></td>
	<td class="summary">Set the value (will also update the index)</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#set_index">set_index (idx, skip_event)</a></td>
	<td class="summary">Set index (will also update the value)</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#set_orientation">set_orientation (value)</a></td>
	<td class="summary">Set the slider orientation
 (only relevant when assigned to buttons)</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#get_orientation">get_orientation ()</a></td>
	<td class="summary">Get the orientation</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#set_size">set_size (size, opt)</a></td>
	<td class="summary">Override UIComponent with this method</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#test">test (msg)</a></td>
	<td class="summary">Expanded UIComponent test</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#draw">draw ()</a></td>
	<td class="summary">Update the appearance - inherited from UIComponent</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#set_pos">set_pos (x, y)</a></td>
	<td class="summary">Set the position using x/y or index within group</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#add_listeners">add_listeners ()</a></td>
	<td class="summary">
<p>Add event listeners</p>
<pre><code>DEVICE_EVENT.BUTTON_PRESSED
DEVICE_EVENT.VALUE_CHANGED
</code></pre>
</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#remove_listeners">remove_listeners ()</a></td>
	<td class="summary">Remove previously attached event listeners</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#_determine_index_by_pos">_determine_index_by_pos (column, row)</a></td>
	<td class="summary">Determine index by position, depends on orientation</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#_invoke_handler">_invoke_handler ()</a></td>
	<td class="summary">Trigger the external handler method</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#_detect_button_mode">_detect_button_mode ()</a></td>
	<td class="summary">Detect if the control is assigned to button widget(s)</td>
	</tr>
</table>
<h2><a href="#Tables">Tables</a></h2>
<table class="function_list">
	<tr>
	<td class="name" nowrap><a href="#palette">palette</a></td>
	<td class="summary">default palette (only relevant for button mode)</td>
	</tr>
</table>
<h2><a href="#Fields">Fields</a></h2>
<table class="function_list">
	<tr>
	<td class="name" nowrap><a href="#self._button_mode">self._button_mode</a></td>
	<td class="summary">(bool) this flag indicates that input method is a button</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.value">self.value</a></td>
	<td class="summary">current value, between 0 and .ceiling</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.steps">self.steps</a></td>
	<td class="summary">(int), set the number of steps to quantize the value
 (this value is automatically set when we assign a size)</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.index">self.index</a></td>
	<td class="summary">(int) the selected index, between 0 - number of steps</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.toggleable">self.toggleable</a></td>
	<td class="summary">(bool) if true, press twice to switch to deselected state
 only applies when input method is a button</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.flipped">self.flipped</a></td>
	<td class="summary">(bool) flip top/bottom direction</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self._orientation">self._orientation</a></td>
	<td class="summary">slider is ORIENTATION.VERTICAL or ORIENTATION.HORIZONTAL?</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self._size">self._size</a></td>
	<td class="summary">(int) the size in units (can be > 1 when input method is a button)
 (always call set_size() method to set this value)</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self._cached_index">self._cached_index</a></td>
	<td class="summary">internal values</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.slider_acceleration">self.slider_acceleration</a></td>
	<td class="summary">the amount of acceleration applied to relative motion</td>
	</tr>
</table>

<br/>
<br/>


    <h2><a name="Functions"></a>Functions</h2>
    <dl class="function">
    <dt>
    <a name = "__init"></a>
    <strong>__init (app, map)</strong>
    </dt>
    <dd>
    Initialize the UISlider class


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">app</span>
         (<a href="../modules/Duplex.Application.html#">Duplex.Application</a>)
        </li>
        <li><span class="parameter">map</span>
        [opt] (table) mapping properties
        </li>
    </ul>





</dd>
    <dt>
    <a name = "do_press"></a>
    <strong>do_press (msg)</strong>
    </dt>
    <dd>
    A button was pressed


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">msg</span>
         (<a href="../modules/Duplex.Message.html#">Duplex.Message</a>)
        </li>
    </ul>

    <h3>Returns:</h3>
    <ol>

        self or nil
    </ol>




</dd>
    <dt>
    <a name = "do_change"></a>
    <strong>do_change (msg)</strong>
    </dt>
    <dd>
    A value was changed (slider, dial)
 set index + precise value within the index


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">msg</span>
         (<a href="../modules/Duplex.Message.html#">Duplex.Message</a>)
        </li>
    </ul>

    <h3>Returns:</h3>
    <ol>

        self or nil
    </ol>




</dd>
    <dt>
    <a name = "output_quantize"></a>
    <strong>output_quantize (val, mode)</strong>
    </dt>
    <dd>
    Check if parameter-quantization is in force


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">val</span>
         (number) a value between floor and ceiling
        </li>
        <li><span class="parameter">mode</span>
         (enum) see <a href="../modules/Duplex.Globals.html#PARAM_MODE">Duplex.Globals.PARAM_MODE</a>
        </li>
    </ul>

    <h3>Returns:</h3>
    <ol>

        (bool) true when the message can pass, false when not
    </ol>




</dd>
    <dt>
    <a name = "set_value"></a>
    <strong>set_value (val, skip_event)</strong>
    </dt>
    <dd>
    Set the value (will also update the index)


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">val</span>
         (float), a number between 0 and .ceiling
        </li>
        <li><span class="parameter">skip_event</span>
         (bool) skip event handler
        </li>
    </ul>





</dd>
    <dt>
    <a name = "set_index"></a>
    <strong>set_index (idx, skip_event)</strong>
    </dt>
    <dd>
    Set index (will also update the value)


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">idx</span>
         (integer)
        </li>
        <li><span class="parameter">skip_event</span>
         (bool) skip event handler
        </li>
    </ul>





</dd>
    <dt>
    <a name = "set_orientation"></a>
    <strong>set_orientation (value)</strong>
    </dt>
    <dd>
    Set the slider orientation
 (only relevant when assigned to buttons)


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">value</span>
         (<a href="../modules/Duplex.Globals.html#ORIENTATION">Duplex.Globals.ORIENTATION</a>)
        </li>
    </ul>





</dd>
    <dt>
    <a name = "get_orientation"></a>
    <strong>get_orientation ()</strong>
    </dt>
    <dd>
    Get the orientation



    <h3>Returns:</h3>
    <ol>

        <a href="../modules/Duplex.Globals.html#ORIENTATION">Duplex.Globals.ORIENTATION</a>
    </ol>




</dd>
    <dt>
    <a name = "set_size"></a>
    <strong>set_size (size, opt)</strong>
    </dt>
    <dd>
    Override UIComponent with this method


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">size</span>
         (int)
        </li>
        <li><span class="parameter">opt</span>
         (int), optional height (only when using ORIENTATION.NONE)
        </li>
    </ul>



    <h3>See also:</h3>
    <ul>
         <a href="../modules/Duplex.UIComponent.html#">Duplex.UIComponent</a>
    </ul>


</dd>
    <dt>
    <a name = "test"></a>
    <strong>test (msg)</strong>
    </dt>
    <dd>
    Expanded UIComponent test


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">msg</span>
         (<a href="../modules/Duplex.Message.html#">Duplex.Message</a>)
        </li>
    </ul>

    <h3>Returns:</h3>
    <ol>

        bool, false when criteria is not met
    </ol>


    <h3>See also:</h3>
    <ul>
         <a href="../modules/Duplex.UIComponent.html#test">Duplex.UIComponent.test</a>
    </ul>


</dd>
    <dt>
    <a name = "draw"></a>
    <strong>draw ()</strong>
    </dt>
    <dd>
    Update the appearance - inherited from UIComponent





    <h3>See also:</h3>
    <ul>
         <a href="../modules/Duplex.UIComponent.html#">Duplex.UIComponent</a>
    </ul>


</dd>
    <dt>
    <a name = "set_pos"></a>
    <strong>set_pos (x, y)</strong>
    </dt>
    <dd>
    Set the position using x/y or index within group


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">x</span>



        </li>
        <li><span class="parameter">y</span>



        </li>
    </ul>



    <h3>See also:</h3>
    <ul>
         <a href="../modules/Duplex.UIComponent.html#">Duplex.UIComponent</a>
    </ul>


</dd>
    <dt>
    <a name = "add_listeners"></a>
    <strong>add_listeners ()</strong>
    </dt>
    <dd>

<p>Add event listeners</p>
<pre><code>DEVICE_EVENT.BUTTON_PRESSED
DEVICE_EVENT.VALUE_CHANGED
</code></pre>






    <h3>See also:</h3>
    <ul>
         <a href="../modules/Duplex.UIComponent.html#add_listeners">Duplex.UIComponent.add_listeners</a>
    </ul>


</dd>
    <dt>
    <a name = "remove_listeners"></a>
    <strong>remove_listeners ()</strong>
    </dt>
    <dd>
    Remove previously attached event listeners





    <h3>See also:</h3>
    <ul>
         <a href="../modules/Duplex.UIComponent.html#">Duplex.UIComponent</a>
    </ul>


</dd>
    <dt>
    <a name = "_determine_index_by_pos"></a>
    <strong>_determine_index_by_pos (column, row)</strong>
    </dt>
    <dd>
    Determine index by position, depends on orientation


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">column</span>
         (Number)
        </li>
        <li><span class="parameter">row</span>
         (Number)
        </li>
    </ul>





</dd>
    <dt>
    <a name = "_invoke_handler"></a>
    <strong>_invoke_handler ()</strong>
    </dt>
    <dd>
    Trigger the external handler method



    <h3>Returns:</h3>
    <ol>

        true when message was handled, false when not
    </ol>




</dd>
    <dt>
    <a name = "_detect_button_mode"></a>
    <strong>_detect_button_mode ()</strong>
    </dt>
    <dd>
    Detect if the control is assigned to button widget(s)







</dd>
</dl>
    <h2><a name="Tables"></a>Tables</h2>
    <dl class="function">
    <dt>
    <a name = "palette"></a>
    <strong>palette</strong>
    </dt>
    <dd>
    default palette (only relevant for button mode)


    <h3>Fields:</h3>
    <ul>
        <li><span class="parameter">background</span>
         The background color
        </li>
        <li><span class="parameter">tip</span>
         The active point
        </li>
        <li><span class="parameter">track</span>
         The track color
        </li>
    </ul>





</dd>
</dl>
    <h2><a name="Fields"></a>Fields</h2>
    <dl class="function">
    <dt>
    <a name = "self._button_mode"></a>
    <strong>self._button_mode</strong>
    </dt>
    <dd>
    (bool) this flag indicates that input method is a button







</dd>
    <dt>
    <a name = "self.value"></a>
    <strong>self.value</strong>
    </dt>
    <dd>
    current value, between 0 and .ceiling







</dd>
    <dt>
    <a name = "self.steps"></a>
    <strong>self.steps</strong>
    </dt>
    <dd>
    (int), set the number of steps to quantize the value
 (this value is automatically set when we assign a size)







</dd>
    <dt>
    <a name = "self.index"></a>
    <strong>self.index</strong>
    </dt>
    <dd>
    (int) the selected index, between 0 - number of steps







</dd>
    <dt>
    <a name = "self.toggleable"></a>
    <strong>self.toggleable</strong>
    </dt>
    <dd>
    (bool) if true, press twice to switch to deselected state
 only applies when input method is a button







</dd>
    <dt>
    <a name = "self.flipped"></a>
    <strong>self.flipped</strong>
    </dt>
    <dd>
    (bool) flip top/bottom direction







</dd>
    <dt>
    <a name = "self._orientation"></a>
    <strong>self._orientation</strong>
    </dt>
    <dd>
    slider is ORIENTATION.VERTICAL or ORIENTATION.HORIZONTAL?
 (use set<em>orientation() method to set this value)
self.</em>orientation = ORIENTATION.VERTICAL







</dd>
    <dt>
    <a name = "self._size"></a>
    <strong>self._size</strong>
    </dt>
    <dd>
    (int) the size in units (can be > 1 when input method is a button)
 (always call set_size() method to set this value)







</dd>
    <dt>
    <a name = "self._cached_index"></a>
    <strong>self._cached_index</strong>
    </dt>
    <dd>
    internal values







</dd>
    <dt>
    <a name = "self.slider_acceleration"></a>
    <strong>self.slider_acceleration</strong>
    </dt>
    <dd>
    the amount of acceleration applied to relative motion







</dd>
</dl>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
